package dp.findSubstringInWraproundString;

import java.util.HashSet;
import java.util.Set;

/**
 * @Date 2020/04/27
 * @author 王光浩
 * @Thinking 使用DP，但是由于没有考虑到子串的唯一性，所以失败。
 */
public class MyMethodOne {
	public int findSubstringInWraproundString(String p) {
		if( p==null || p.length()==0 ) return 0;
		Set<Character> set = new HashSet<Character>(); //保存单个字符数 
		int pre = 0;    //以前一个子串结尾的所有子串在 s 中的个数
		int ret = 0;    //p 中所有子串在 s 中的总个数
		set.add(p.charAt(0));
		for( int i=1 ; i<p.length() ; i++) {
			if( p.charAt(i)-p.charAt(i-1)==1 || 
				(p.charAt(i)=='a' && p.charAt(i-1)=='z') || 
				(p.charAt(i)=='z' && p.charAt(i-1)=='a')) {
				ret += ++pre;
			}
			else
				pre = 0;
			if( !set.contains(p.charAt(i)) ) set.add(p.charAt(i));
		}
		return ret+set.size();
   }
}
